//package com.tsinghuabigdata.edu.ddmath.module.neteaseim.ui.dialog;
//
//import android.app.AlertDialog;
//import android.content.Context;
//import android.os.Bundle;
//import android.text.TextUtils;
//import android.util.Pair;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.AdapterView;
//import android.widget.AdapterView.OnItemClickListener;
//import android.widget.BaseAdapter;
//import android.widget.ImageButton;
//import android.widget.LinearLayout;
//import android.widget.ListView;
//import android.widget.TextView;
//
//import com.netease.nim.chatroom.demo.R;
//import com.netease.nim.chatroom.demo.base.ui.TAdapter;
//import com.netease.nim.chatroom.demo.base.ui.TAdapterDelegate;
//import com.netease.nim.chatroom.demo.base.ui.TViewHolder;
//import com.netease.nim.chatroom.demo.base.util.ScreenUtil;
//
//import java.util.LinkedList;
//import java.util.List;
//
//public class CustomAlertDialog extends AlertDialog {
//
//	private Context context;
//
//	private int itemSize = 0;
//
//	private View titleView;
//
//	private TextView titleTextView;
//
//	private ImageButton titleBtn;
//
//	private ListView listView;
//
//	private boolean isTitleVisible = false;
//
//	private boolean isTitleBtnVisible = false;
//
//	private String title;
//
//	private View.OnClickListener titleListener = null;
//
//	private List<Pair<String, Integer>> itemTextList = new LinkedList<Pair<String, Integer>>();
//
//	private List<onSeparateItemClickListener> itemListenerList = new LinkedList<onSeparateItemClickListener>();
//
//	private OnClickListener listListener;
//
//	private BaseAdapter listAdapter;
//
//	private OnItemClickListener itemListener;
//
//	private int defaultColor = R.color.color_black_333333;
//
//	public CustomAlertDialog(Context context) {
//		super(context, R.style.dialog_default_style);
//		this.context = context;
//		initAdapter();
//	}
//
//	public CustomAlertDialog(Context context, int itemSize) {
//		super(context, R.style.dialog_default_style);
//		this.context = context;
//		this.itemSize = itemSize;
//	}
//
//	private void initAdapter() {
//		listAdapter = new TAdapter(context, itemTextList, new TAdapterDelegate() {
//
//			@Override
//			public int getViewTypeCount() {
//				return itemTextList.size();
//			}
//
//			@Override
//			public Class<? extends TViewHolder> viewHolderAtPosition(int position) {
//				return CustomDialogViewHolder.class;
//			}
//
//			@Override
//			public boolean enabled(int position) {
//				return true;
//			}
//		});
//		itemListener = new OnItemClickListener() {
//
//			@Override
//			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//				itemListenerList.get(position).onClick();
//				dismiss();
//			}
//		};
//	}
//
//	public void setAdapter(final BaseAdapter adapter, final OnClickListener listener) {
//		listAdapter = adapter;
//		listListener = listener;
//		itemListener = new OnItemClickListener() {
//
//			@Override
//			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//				dismiss();
//				listListener.onClick(CustomAlertDialog.this, position);
//			}
//		};
//	}
//
//	@Override
//	protected void onCreate(Bundle savedInstanceState) {
//		super.onCreate(savedInstanceState);
//		setContentView(R.layout.nim_easy_alert_dialog_with_listview);
//		LinearLayout root = (LinearLayout) findViewById(R.id.easy_alert_dialog_layout);
//		ViewGroup.LayoutParams params = root.getLayoutParams();
//		params.width = (int) ScreenUtil.getDialogWidth();
//		root.setLayoutParams(params);
//		titleView = findViewById(R.id.easy_dialog_title_view);
//		if (titleView != null) {
//			setTitleVisible(isTitleVisible);
//		}
//		titleTextView = (TextView) findViewById(R.id.easy_dialog_title_text_view);
//		if (titleTextView != null) {
//			setTitle(title);
//		}
//		titleBtn = (ImageButton) findViewById(R.id.easy_dialog_title_button);
//		if (titleBtn != null) {
//			setTitleBtnVisible(isTitleBtnVisible);
//			setTitleBtnListener(titleListener);
//		}
//		listView = (ListView) findViewById(R.id.easy_dialog_list_view);
//		if (itemSize > 0) {
//			updateListView();
//		}
//	}
//
//	public void setTitle(String title) {
//		this.title = title;
//		isTitleVisible = TextUtils.isEmpty(title) ? false : true;
//		setTitleVisible(isTitleVisible);
//		if (isTitleVisible && titleTextView != null) {
//			titleTextView.setText(title);
//		}
//	}
//
//	public void setTitle(int resId) {
//		this.title = context.getString(resId);
//		isTitleVisible = TextUtils.isEmpty(title) ? false : true;
//		setTitleVisible(isTitleVisible);
//		if (isTitleVisible && titleTextView != null) {
//			titleTextView.setText(title);
//		}
//	}
//
//	public void setTitleVisible(boolean visible) {
//		isTitleVisible = visible;
//		if (titleView != null) {
//			titleView.setVisibility(isTitleVisible ? View.VISIBLE : View.GONE);
//		}
//	}
//
//	public void setTitleBtnVisible(boolean visible) {
//		isTitleBtnVisible = visible;
//		if (titleBtn != null) {
//			titleBtn.setVisibility(isTitleBtnVisible ? View.VISIBLE : View.GONE);
//		}
//	}
//
//	public void setTitleBtnListener(View.OnClickListener titleListener) {
//		this.titleListener = titleListener;
//		if (titleListener != null && titleBtn != null) {
//			titleBtn.setOnClickListener(titleListener);
//		}
//	}
//
//	public void addItem(String itemText, onSeparateItemClickListener listener) {
//		addItem(itemText, defaultColor, listener);
//	}
//
//	public void addItem(String itemText, int color, onSeparateItemClickListener listener) {
//		itemTextList.add(new Pair<String, Integer>(itemText, color));
//		itemListenerList.add(listener);
//		itemSize = itemTextList.size();
//	}
//
//	public void addItem(int resId, onSeparateItemClickListener listener) {
//		addItem(context.getString(resId), listener);
//	}
//
//	public void addItem(int resId, int color, onSeparateItemClickListener listener) {
//		addItem(context.getString(resId), color, listener);
//	}
//
//	public void addItemAfterAnother(String itemText, String another, onSeparateItemClickListener listener) {
//		int index = itemTextList.indexOf(another);
//		itemTextList.add(index + 1, new Pair<String, Integer>(itemText, defaultColor));
//		itemListenerList.add(index + 1, listener);
//		itemSize = itemTextList.size();
//	}
//
//	public void clearData() {
//		itemTextList.clear();
//		itemListenerList.clear();
//		itemSize = 0;
//	}
//
//	private void updateListView() {
//		listAdapter.notifyDataSetChanged();
//		if (listView != null) {
//			listView.setAdapter(listAdapter);
//			listView.setOnItemClickListener(itemListener);
//		}
//	}
//
//	public interface onSeparateItemClickListener {
//
//		void onClick();
//	}
//
//	@Override
//	public void show() {
//		if (itemSize <= 0) {
//			return;
//		}
//		updateListView();
//		super.show();
//	}
//
//}
